SQLiteOpenHelper 的 Android JUnit 测试
全部标签 我在TFS2010服务器上有一个x64平台C#解决方案(VS2012)。我已将单元测试项目(也是x64)附加到此解决方案并创建了构建定义。当我对构建进行排队时,它成功了,但不会执行单元测试用例。这是因为MSTest是32位应用程序。因此,我决定自定义默认构建过程模板(DefaultTemplate.xaml)以调用VSTest(VSTest.console.exe)而不是MSTest。这非常复杂,我无法将构建事件添加到VSTest的工具箱。有没有人做过这种定制?我还考虑过其他方法,例如配置.runsettings文件。我们是否有可以添加到.runsettings文件中的VSTest适配
我被指派为一个应用程序开发WebAPIController(这是我以前从未接触过的)。一切顺利,出于测试原因有一些基本请求,如GetAllUsers(intid)-配置本身没问题。问题来了。我有一个方法GetAllItems(Carriercarrier)其中Carrier是一个具有许多不同参数的类。由于我们已经在数据库中有一些Carrier实例用于测试目的,我尝试查询数据库,根据ID(GUID)属性选择Carrier实例,但没有结果。当输入参数是对象而不是单个值(例如intID)时,是否有一种方法可以使用测试方法或某种测试输入参数手动测试GET请求?编辑:感谢大家的反馈,我的问题的解
我对控制台应用程序的Main方法进行单元测试有疑问。标准签名是publicstaticvoidMain(string[]args)我希望能够进行测试以确保只传入1个参数。如果传入了多个参数,我希望测试失败。我不认为我可以用MOQ来模拟它作为它的静态方法。谁有这方面的经验?有什么想法吗?谢谢 最佳答案 在您的场景中没有什么可模拟的。静态Program.Main是一种与任何其他方法一样的方法,您可以通过调用它来测试它。staticvoid方法的问题是您只能验证它是否抛出异常或与输入参数(或其他静态成员,最终)交互。由于在string[]
我有两个多重集,都是IEnumerables,我想比较它们。string[]names1={"tom","dick","harry"};string[]names2={"tom","dick","harry","harry"};string[]names3={"tom","dick","harry","sally"};string[]names4={"dick","harry","tom"};希望names1==names4返回true(显然self==self返回true)但所有其他组合都返回false。什么是最有效的方法?这些可以是大量的复杂对象。我看着做:vara=name1.o
我正在学习TDD,我目前有一个有效的方法,但我认为我可以尝试使用TDD重建它。该方法基本上采用6个参数,查询数据库,执行一些逻辑并返回List我的初始测试包括检查空/零定义的字符串和int方法参数值,但现在我不确定该怎么做。如果我不使用TDD,我只会创建代码来查找数据库连接字符串并打开数据库连接、查询数据库、读取值等。显然我们不能在单元测试中做到这一点,所以我在寻求如何进行的一些建议。 最佳答案 请记住,TDD不仅关乎测试,还关乎良好的设计。这种方法太多了;它违反了关注点分离原则。您已经确定了几个需要测试的区域:Themethode
我刚刚开始试验最小起订量以对我的模块进行单元测试。实际上,我必须为其编写单元测试的类使用Assembly.GetExecutingAssembly().Location在内部确定路径。但是,这在编写单元测试时不起作用,因为执行程序集的路径不同(采用单元测试程序集的路径)AppData\\Local\\Temp\\3ylnx32t.ukg\\TestApplication.Test\\assembly\\dl3\\aeb938e6\\f3664631_d982ce01。我试过了,禁用卷影复制。AppDomainSetupappDomain=newAppDomainSetup{Shadow
如何测试通用字典对象以查看它是否为空?我想按如下方式运行一些代码:while(reportGraphs.MoveNext()){reportGraph=(ReportGraph)reportGraphs.Current.Value;report.ContainsGraphs=true;break;}reportGraph对象的类型是System.Collections.Generic.Dictionary运行此代码时,reportGraphs字典为空,MoveNext()立即抛出NullReferenceException。如果有更高效的方法来处理空集合,我不想在block周围放置tr
当我将带有日期属性的json对象发布到ApiController时,它不会反序列化为日期。服务器站点代码:publicclassMegaTestController:ApiController{//POST/megatestpublicvoidPost(tttvalue){stringsdf="!sad";}}publicclassttt{publicDateTimeDate{get;set;}publicstringName{get;set;}}然后我用fiddler做一个POST请求POSThttp://localhost:62990/MegaTestHTTP/1.1User-Ag
我正在编写一个简单的测试用例来测试我的Controller在调用我的服务之前调用缓存。我正在使用xUnit和Moq来完成这项任务。我遇到了一个问题,因为GetOrCreateAsync是一种扩展方法,框架不能模拟这些方法。我依靠内部细节来弄清楚我可以模拟TryGetValue相反,逃避我的测试(参见https://github.com/aspnet/Caching/blob/c432e5827e4505c05ac7ad8ef1e3bc6bf784520b/src/Microsoft.Extensions.Caching.Abstractions/MemoryCacheExtension
我有一堆类都实现了一个接口(interface),其中一个参数是StreamWriter。我需要检查StreamWriter的内容。我正试图找到一种方法来避免在测试服务器上写入文本文件并打开它们来检查内容。有没有办法快速将StreamWriter内容/流转换为StringBuilder变量? 最佳答案 您不能检查StreamWriter。您可以检查它正在写入的基础流。因此,您可以在单元测试中使用MemoryStream并将此StreamWriter指向它。一旦它完成写入,您就可以从中读取。[TestMethod]publicvoid